gRPC 接口 |
您所在的位置:网站首页 › grpc 调试工具 › gRPC 接口 |
gRPC 接口 gRPC 是一种高效、快速、可靠的远程过程调用(RPC, Remote Procedure Call)框架,在多种不同的场景都有着广泛的应用。在微服务架构中,gRPC 可以实现跨服务的高效通信。对于需要大量数据传输的场景,gRPC 可以使用流式传输功能,以减少网络传输延迟和带宽占用。 注意gRPC 接口调试功能正处于 Beta 公开测试阶段。Apifox 版本号需大于等于 2.3.0 才能够使用 gRPC 接口调试功能。新建 gRPC 项目点击 Apifox 首页的“新建项目”按钮,选择 “gRPC 项目(Beta)”。 gRPC 是一种 API-First 的 API 技术,这意味着在开发之前,必须先通过 .proto 文件来定义服务、方法和消息。因此,使用 Apifox 调试 gRPC 接口之前,也需要先导入作为 API 定义的 .proto 文件。 首次导入目前支持以下两种方式导入 .proto 文件: 本地文件托管 .proto 文件的 URL目标 .proto 文件会被导入为 1 个 Proto,其中 service 会被导入为服务,rpc 会被导入为方法。 如果选择的 .proto 文件依赖于其他 .proto 文件,那么需要手动添加依赖关系目录。 选择的 .proto 文件所依赖的其他 .proto 文件内的 service,如果其归属的 package 与选择的 .proto 文件的 package 相同,也会被导入到相同的 Proto 中。 重新导入如果导入的 .proto 文件发生了变化,那么可以在 Apifox 内重新导入 .proto 文件:右键点击 Proto,然后点击重新导入按钮。 使用 .proto 文件定义 gRPC 的方法时,支持 4 种类型: Unary:一元调用Server Streaming:服务端流Client Streaming:客户端流Bidirectional Streaming:双向流Apifox 支持全部 4 种方法的调用。 一元调用一元调用类似于 HTTP 请求。在地址栏输入 URL,在 Message 标签下以 JSON 格式输入消息内容,点击“调用”按钮,即可发起一元调用。 此外,你也可以手动填写 Metadata 和 Auth 信息,以满足鉴权或其他复杂场景。 流式调用类似于 WebSocket 连接。在发起调用之后,你可以在 Message 标签下撰写消息并发送。服务端流、客户端流与双向流皆属于流式调用类型。 Apifox 提供了一个时间线视图,按照时间顺序集中展示调用状态、发送的消息、收到的消息。点击消息之后,可以非常方便地查看消息的详情。 Apifox 能够识别 .proto 文件中的内容,因此你可以点击“自动生成”按钮生成消息体。如果你需要使用更加灵活的动态数据,那么可以点击“动态值”功能配置并生成表达式。 详细说明请参考《动态变量/随机参数》。 你可以在 gRPC 的消息和 Metadata 中使用 Apifox 变量。 详细说明请参考《环境变量/全局变量/临时变量》。 gRPC 接口支持通过 TLS 建立安全的连接。 使用 Apifox,你可以点击 URL 前面的协议选择器来快速切换 TLS 的状态。 此外,Apifox 也兼容在 URL 中使用 grpcs:// 来为连接启用 TLS。与之相对应,grpc:// 表示不启用 TLS。 你可以点击 URL 地址栏右侧的加号图标,将当前正在使用的服务器地址添加到一个环境。 然后,在右上角选择环境和服务器地址,再在 URL 地址栏中选择“跟随默认”,就可以给所有方法使用统一的服务器地址来进行调试。 在 Apifox 中点击左侧目录树中的 Proto 即可查看 .proto 文件的原始内容。 gRPC 使用 ProtoBuf 作为序列化格式,这意味着在发送、接收消息时,每条消息都以 ProtoBuf 格式进行传输。与其他基于文本的序列化格式(JSON、XML)不同,ProtoBuf 是一种二进制格式,不适合人类进行书写、阅读。因此,在 Apifox 中调用 gRPC 接口时,所有消息都使用 JSON 格式来撰写、展示。 你可以在接口信息页面查看以 JSON 形式表示的请求参数和响应参数。 ProtoBuf 和 JSON 的数据类型存在着映射关系,如下表所示: ProtoBuf 3JSONJSON 示例messageobject{"fooBar": v, "g": null, …}enumstring"FOO_BAR"mapobject{"k": v, …}repeated Varray[v, …]boolbooleantrue, falsestringstring"Hello World!"bytesbase64 string"YWJjMTIzIT8kKiYoKSctPUB+"int32, fixed32, uint32number1, -10, 0int64, fixed64, uint64string"1", "-10"float, doublenumber1.1, -10.0, 0, "NaN", "Infinity"gRPC 与 TripleTriple 是一种兼容 gRPC 的 API 技术,它们都使用 gRPC 通信协议和 ProtoBuf 序列化格式。 如果你的 Triple 接口通过 .proto 文件进行定义,而不是 Java Interface 或其他方式定义,那么同样可以在 Apifox 的 gRPC 项目中加载 .proto 文件来调试 Triple 接口。 此时,URL 中的协议名 tri:// 和 grpc:// 是等价的。 完成调试后可以点击“保存”按钮将服务器 URL、消息、Metadata 等调试信息保存在当前方法中,以便团队内的其他成员进行调试。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |